package gorms

import (
	"github.com/jinzhu/gorm"
)

func NewSession(db *gorm.DB, fn func(db *gorm.DB) error) error {
	// 开启事务
	tx := db.Begin()

	if err := fn(tx); err != nil {
		// 发生错误回滚事务
		tx.Rollback()
		return err
	}

	// 或者提交这个事务
	return tx.Commit().Error
}

func NewSession2(db *gorm.DB, fn func(db *GDB) error) error {
	// 开启事务
	tx := newDB(db.Begin())

	if err := fn(tx); err != nil {
		// 发生错误回滚事务
		tx.Rollback()
		return err
	}

	// 或者提交这个事务
	return tx.Commit().Error
}
